#include "boolean.h"
#include "ADT_Tanggal.h"
#include "ADT_String.h"

#ifndef ADT_INFOTYPE
#define ADT_INFOTYPE

typedef struct {
	char Email[100];
	char Nama[100];
	Tanggal TglLahir;
	char KotaAsal[100];
	char UNV[100];
	char SMU[100];
} infotype;

// {*****GETTER*****}
#define GetEmail(X) (X).Email
#define GetNama(X) (X).Nama
#define GetTanggal(X) (X).TglLahir
#define GetKotaAsal(X) (X).KotaAsal
#define GetUNV(X) (X).UNV
#define GetSMU(X) (X).SMU

// {*****SETTER*****}
void SetEmail(infotype* X, char A[100]);
void SetNama(infotype* X, char A[100]);
void SetInfoTanggal(infotype* X, Tanggal A);
void SetKotaAsal(infotype* X, char A[100]);
void SetUNV(infotype* X, char A[100]);
void SetSMU(infotype * X, char A[100]);
void SetInfotype(infotype * X, infotype Y);

// {*****PREDIKAT*****}
bool IsInfoEqual(infotype A, infotype B);
bool IsNameLess(infotype A, infotype B);
bool IsNameMore(infotype A, infotype B);

void PrintInfotype(infotype X);
// Menuliskan ke layar isi dari infotype
void ModifiyInfotype(infotype * X);
// Memasukkan ulang input untuk tiap komponen data

#endif

